The present invention generally relates to the field of a network of information handling systems. More particularly, it relates to a system and method for providing print support on a connected system with limited resources, sometimes referred to herein as a thin client.
It is well known to provide a printer coupled to a computer system as one means of providing a permanent record of the output of the computer system. However, as the number of printers with disparate interfaces as well as the number of different types of document formats have grown, full printer support in a typical computer environment has become complex. The designers of computer and printer hardware and software have attempted to insulate the application developer from the complexities of the environment as well as device specific attributes by the use of one or more printer drivers. While they have largely succeeded, the attendant demands of the printer drivers and associated software on system resources have grown quite large.
One of the recent efforts to decrease the cost of network computing is the development of network computers, or other "thin clients". These devices are characterized by limited local system resources and a greater dependency on larger systems in the network than the present day personal computer.
Providing full function local print support on a connected system with limited resources is extremely difficult. The large amounts of random access memory and disk space required, as well as the needed processor speed, complicate the development of network computers. A typical printer driver requires one to two megabytes of disk space simply to be installed. When the driver is loaded along with the system components it requires, such as a spooling system, raster banding/journaling code, and a port driver, the printer driver can consume large amounts of system memory designated for code space. When the driver is rendering a print job, the printer driver can use one to sixty-four megabytes of data memory to rasterise the page. The techniques used to lower memory requirements such as banding complicate the driver and increase driver development time. Also, these techniques only trade processor and disk usage for memory usage. When the printer is in use, it is necessary to provide disk spooling. Depending on the size of the jobs, number of print jobs and printer languages used, the disk requirements of the spooling system can range from a few megabytes to hundreds of megabytes.
Clearly, these enormous requirements make providing reliable local print support on a thin or resource restricted client extraordinarily demanding.
In today's information handling systems local printing from systems with limited resources is either nonexistent, limited, complicated, or resource intensive. One prior solution is to not allow local printing on the thin client. This forces users of these systems to use server printing or manually upload files to another system for printing. This method does not provide the convenience of local printing.
Another prior method is to limit the scope and functionality of local printing by reducing the device support to a single or few simple devices, limiting spooling and/or restricting print capabilities, e.g., only printing text. This method is too restrictive for general use.
The most common prior solution has been to increase the resources on the thin clients that require local printing and render the print file on the client, much like the situation on a personal computer attached to a network. This method increases the cost and complexity of every system, defeating some of the cost saving benefits of network computing.
Thus, there is a need to provide an economical, full function local print function in a network computing environment.